home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
-
- class CIntArray {
- private int[] m_intArray;
- private int m_nNoElements;
-
- void SetSize(int var1) {
- this.m_intArray = new int[var1];
- this.m_nNoElements = var1;
- }
-
- int GetAt(int var1) {
- int var2;
- try {
- var2 = this.m_intArray[var1];
- } catch (ArrayIndexOutOfBoundsException var3) {
- var2 = -1;
- }
-
- return var2;
- }
-
- boolean InsertAt(int var1, int var2) {
- boolean var3 = false;
- if (var1 >= 0) {
- if (var1 > this.m_nNoElements - 1) {
- var3 = this.SetAtGrow(var1, var2);
- } else {
- int[] var4 = new int[this.m_nNoElements];
- System.arraycopy(this.m_intArray, 0, var4, 0, this.m_nNoElements);
- this.m_intArray = new int[this.m_nNoElements + 1];
- if (this.SetAt(var1, var2)) {
- System.arraycopy(var4, 0, this.m_intArray, 0, var1);
- System.arraycopy(var4, var1, this.m_intArray, var1 + 1, this.m_nNoElements - var1);
- ++this.m_nNoElements;
- var3 = true;
- }
- }
- }
-
- return var3;
- }
-
- boolean Add(int var1) {
- return this.SetAtGrow(this.m_nNoElements, var1);
- }
-
- boolean RemoveAt(int var1) {
- boolean var2 = false;
- if (var1 >= 0 && var1 < this.m_nNoElements) {
- int[] var3 = new int[this.m_nNoElements];
- System.arraycopy(this.m_intArray, 0, var3, 0, this.m_nNoElements);
- this.m_intArray = new int[this.m_nNoElements - 1];
- System.arraycopy(var3, 0, this.m_intArray, 0, var1);
- System.arraycopy(var3, var1 + 1, this.m_intArray, var1, this.m_nNoElements - (var1 + 1));
- this.m_nNoElements += -1;
- var2 = true;
- }
-
- return var2;
- }
-
- boolean Copy(CIntArray var1) {
- boolean var2 = false;
- this.SetSize(var1.GetSize());
-
- for(int var3 = 0; var3 < this.m_nNoElements; ++var3) {
- if (!this.SetAt(var3, var1.GetAt(var3))) {
- var2 = false;
- break;
- }
-
- var2 = true;
- }
-
- return var2;
- }
-
- int GetSize() {
- return this.m_nNoElements;
- }
-
- CIntArray() {
- this.m_intArray = new int[0];
- this.m_nNoElements = 0;
- }
-
- CIntArray(int var1) {
- this.SetSize(var1);
- }
-
- boolean SetAtGrow(int var1, int var2) {
- boolean var3 = false;
- if (var1 >= 0) {
- while(!var3) {
- try {
- this.m_intArray[var1] = var2;
- var3 = true;
- } catch (ArrayIndexOutOfBoundsException var5) {
- int[] var4 = new int[var1 + 1];
- System.arraycopy(this.m_intArray, 0, var4, 0, this.m_nNoElements);
- this.m_intArray = new int[var1 + 1];
- System.arraycopy(var4, 0, this.m_intArray, 0, this.m_nNoElements);
- this.m_nNoElements = var1 + 1;
- var3 = false;
- }
- }
- }
-
- return var3;
- }
-
- int GetUpperBound() {
- return this.m_nNoElements - 1;
- }
-
- void RemoveAll() {
- this.SetSize(0);
- }
-
- boolean SetAt(int var1, int var2) {
- boolean var3 = false;
-
- try {
- this.m_intArray[var1] = var2;
- var3 = true;
- } catch (ArrayIndexOutOfBoundsException var4) {
- var3 = false;
- }
-
- return var3;
- }
-
- boolean LoadFromFile(DataInputStream var1) {
- int var2 = FileLoad.ReadCount(var1);
- this.SetSize(var2);
-
- for(int var3 = 0; var3 < var2; ++var3) {
- this.SetAt(var3, FileLoad.ReadCPlusInt(var1));
- }
-
- return true;
- }
- }
-